<?php
class ASolicitudPartesAdicional{
public function __construct() {}
public function generarOrdenDespachoPartesAdicional(EFacade & $facade) 
	{
		$m = epManager::instance();
		$docSPAd = & $facade->getDocumentRoot();
		
		//Creo la ODP
		$ODP = $facade->session->create('DOrdenDespachoPartesAdicional');
		$area = $m->find('FROM MAreaTrabajo as t WHERE t.nombre=?','Mantenimiento');
		$ODP->areaTrabajo = $area[0];
		$ODP->instanciaEquipo = $docSPAd->instanciaEquipo;
		$ODP->solicitud = $docSPAd;
		$role = null;
		$newEfacade = & EFacade :: initWorkflow($facade->session, $ODP, & $role);
		$transSet = & EFacade :: getCurrentTransSetAuto($newEfacade->getWorkflow(), /*PROCESS */ 3);
		$trans = $transSet->getTransByName('t1');
		$newEfacade->fireTrans($trans, $role, "Crear",TRUE);
		$ODP->epSetDirty(TRUE);// marcar el documento para que sea salvado los cambios en su lista de items
		$newEfacade->saveWorkflow();
		$ODP->commit();
		$ODP->numero = $ODP->getDocumentNumber();
		unset($newEfacade);
		//**********************************************************
		
		//Disparo el agente en t3 de la SPM
		$workflowSPA = & $facade->getWorkflow();
		$transSetSPA = & EFacade :: getCurrentTransSetAuto($workflowSPA, 2); //TYPE AUTO AGENT
		$role=NULL;
		$transSA = $transSetSPA->getTransByName('t3');
		$facade->fireTrans($transSA,$role,'Gen ODP', TRUE);
	}	
	public function culminarSolicitud(EFacade & $facade) 
	{
		$m = epManager::instance();
		$SPA = & $facade->getDocumentRoot();
				
		//Disparar la OM
//		$OM = $SPA->ordenGenerada;
//		$workflow = & $OM->getWorkflowRef();
//		$facade->session->refresh($workflow);
//		$newEfacade = & EFacade :: initWorkflowWithoutRole($facade->session, $OM, 3);//tipo Process
//		$transSet = & EFacade :: getCurrentTransSetAuto($workflow, /*PROCESS */ 3);
//		$trans = $transSet->getTransByName('t7');
//		$role = null;
//		//Solo si esta disponible la t7
//		if($trans){
//			$newEfacade->fireTrans($trans, $role, "Culmina",TRUE);
//			$workflow->epSetDirty(TRUE);
//			$OM->epSetDirty(TRUE);
//			$newEfacade->saveWorkflow();
//		}

		//Disparo el agente en t5 de la SPA
		$workflowSPA = & $facade->getWorkflow();
		$transSetSPA = & EFacade :: getCurrentTransSetAuto($workflowSPA, 2); //TYPE AUTO AGENT
		$role=NULL;
		$transSA = $transSetSPA->getTransByName('t5');
		$facade->fireTrans($transSA,$role,'Culmina', TRUE);
	}	
}
?>